'''
给你一个二进制字符串 s 。如果字符串中由 1 组成的 最长 连续子字符串 严格长于 由 0 组成的 最长 连续子字符串，返回 true ；否则，返回 false 。

例如，s = "110100010" 中，由 1 组成的最长连续子字符串的长度是 2 ，由 0 组成的最长连续子字符串的长度是 3 。
注意，如果字符串中不存在 0 ，此时认为由 0 组成的最长连续子字符串的长度是 0 。字符串中不存在 1 的情况也适用此规则。

 

示例 1：

输入：s = "1101"
输出：true
解释：
由 1 组成的最长连续子字符串的长度是 2："1101"
由 0 组成的最长连续子字符串的长度是 1："1101"
由 1 组成的子字符串更长，故返回 true 。
示例 2：

输入：s = "111000"
输出：false
解释：
由 1 组成的最长连续子字符串的长度是 3："111000"
由 0 组成的最长连续子字符串的长度是 3："111000"
由 1 组成的子字符串不比由 0 组成的子字符串长，故返回 false 。
示例 3：

输入：s = "110100010"
输出：false
解释：
由 1 组成的最长连续子字符串的长度是 2："110100010"
由 0 组成的最长连续子字符串的长度是 3："110100010"
由 1 组成的子字符串不比由 0 组成的子字符串长，故返回 false 。

来源：力扣（LeetCode）
链接：https://leetcode.cn/problems/longer-contiguous-segments-of-ones-than-zeros
著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
'''
class Solution(object):
    def checkZeroOnes(self, s):
        """
        :type s: str
        :rtype: bool
        """
        s = "1"
        tmp = s[0]
        len1tmp = 0 if s[0]=='0' else 1
        len0tmp = 0 if s[0]=='1' else 1
        len1,len0 = len1tmp,len0tmp
        for i in range(1, len(s)):
            if tmp==s[i]:
                if s[i] == '0':
                    len0tmp += 1
                if s[i] == '1':
                    len1tmp += 1
            else:
                tmp = s[i]
                len1tmp = 0 if s[i] == '0' else 1
                len0tmp = 0 if s[i] == '1' else 1
            len1 = max(len1,len1tmp)
            len0 = max(len0,len0tmp)
            print(len1,len0)


        print(len1>len0)